We must do_softirq() explicitly to enter scheduler
If not, booting a windows guest and a linux guest at the same time
will lead to a system hang.
Signed-off-by: Zhang Xin <xing.z.zhang@intel.com>
p->state = STATE_IOREQ_READY;
notify_via_xen_event_channel(v->arch.arch_vmx.xen_port);
- /*
- * Waiting for MMIO completion
- * like the wait_on_xen_event_channel() macro like...
- * but, we can't call do_softirq() at this point..
- */
for (;;) {
if (p->state != STATE_IOREQ_READY &&
p->state != STATE_IOREQ_INPROCESS)
}
raise_softirq(SCHEDULE_SOFTIRQ);
+ do_softirq();
mb();
}